The present invention relates to a method and apparatus for transparently multicasting identical data streams originating from different or common sources.
In the Internet environment, multiple users access the same data relatively close to the same time. For example, popular web sites have hit rates which approach 200 hits per second (as described in Mansigian, Joseph, Clearing the Traffic Jam at Internet Serversxe2x80x94A Network Layer View of Network Traffic Consolidation, March, 1997). Many of the accesses are to the xe2x80x9cmainxe2x80x9d or first page of a given web page, e.g., http://www.cnn.com, therefore multiple accesses or users can be served by one packet which is multicast to the multiple users. Such multicasting reduces the amount of traffic on the network links and effectively increases the aggregate bandwidth of the system. FIG. 1 shows an example of one source multicasting the same data to two separate clients inside the Internet. At the point where the routes to the clients diverge, the data packets are duplicated and sent to each client directly. The data packets are grouped as one as far through the network as possible, splitting when necessary to reach each client. As shown in FIG. 1, the solid black lines represent the combined/multicast route for clients 1 and 2. The dashed lines represent the route to client 1. The dotted lines represent the route to client 2 and the asterisk lines signify the unused routes. Not all servers connected to the Internet support multicasting of data packets. Network bandwidth is wasted by these servers when identical data packets are delivered to multiple clients.
There are services available which deliver streaming content to end users. Although much of this content is of the store and forward variety, many of the streams are made of live content. For example, one of the popular features offered by these services is the ability for Internet users to access sporting events which are not broadcast on radio or television in their local area. Multiple users in a given area may access the same live content, thus providing users with the ability to access numerous different sources within a local area and around the country. In such an example, two Internet users could actually be in the same neighborhood listening to the same sports broadcast, possibly a Purdue basketball game, and retrieving the same data from different sources. In this case, however, multicasting at the source level is not possible since the two users are accessing different sources.
Thus, a need exists for multicasting data for simultaneous receipt by multiple users when the multiple users are accessing different sources or when multiple users are accessing a single source which does not support multicasting.